package com.taotao.shopping.mapper;

import com.taotao.shopping.domain.PmsCartItems;
import com.taotao.shopping.domain.response.CartResponse;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;

public interface ShoppingMapper {
    /**
     * @Author ZhangYuQi
     * @Description 为当前登录用户创建购物车
     * @Date 下午9:53 2024/12/26
     * @Param [userid]
     * @return
     */
    void insertPmsCart(@Param("userId") Long userId);

    /**
    * @Author ZhangYuQi
    * @Description  根据用户id查询购物车id
    * @Date 上午11:00 2024/12/28
    * @Param [aLong]
    * @return
    */
    Long selectCartByUserId(Long userId);

    /**
    * @Author ZhangYuQi
    * @Description 根据skuId cartId 查询购物车明细
    * @Date 下午12:05 2024/12/28
    * @Param [skuId, cartId, quantity]
    * @return
    */
    PmsCartItems selectCartItemsBySkuIdCartIdAndQuantity(@Param("skuId") Long skuId, @Param("cartId") Long cartId);

    /**
    * @Author ZhangYuQi
    * @Description 批量添加购物车明细
    * @Date 上午10:36 2024/12/29
    * @Param [addCartItemsList]
    * @return
    */
    void insertInBulkCartItems(@Param("addCartItemsList") ArrayList<PmsCartItems> addCartItemsList);

    /**
    * @Author ZhangYuQi
    * @Description 批量更新购物车明细数量
    * @Date 上午10:40 2024/12/29
    * @Param [updateCartItemsList]
    * @return
    */
    void updateInBulkCartItems(@Param("updateCartItemsList") ArrayList<PmsCartItems> updateCartItemsList);

    /**
    * @Author ZhangYuQi
    * @Description 获取当前登录用户购物车
    * @Date 上午11:06 2024/12/29
    * @Param [userId]
    * @return
    */
    List<CartResponse> selectUserCartList(@Param("userId") Long userId);
}
